やっぱりわかりません。(一定時間経過→収穫のスプリクト(質問掲示板

投稿: Edamame icon mini 茹で小豆 投稿:2013/09/17 19:23:17(最新:2013/09/23 16:11:23)
setVariable("m", createArray())
setVariable("t", createArray())
setVariable("k", createArray())
setVariable("ko", createArray())
setVariable("ky", createArray())
setVariable("n", createArray())
setVariable("j", createArray())

if getFlag("sebu")
speak("作物が枯れてしまいました。")
setVariable("s",false)
setVariable("sebu",false)
end
if getFlag("s")
t = getTime() / 1000
t = floor(t)
if t>59
speak("作物にみがなりました!!")
if getFlag("m")
getVariable("m")[0
=20
speak("豆を20コ収穫しました!!")
elsif getFlag("t")
getVariable("t")[0]=20
speak("トマトを20コ収穫しました!!")
elsif getFlag("k")
getVariable("k")[0]=20
speak("キャベツを20コ収穫しました!!")
elsif getFlag("ko")
getVariable("ko")[0]=20
speak("小麦を20コ収穫しました!!")
elsif getFlag("ky")
getVariable("ky")[0]=20
speak("きゅうりを20コ収穫しました!!")
elsif getFlag("n")
getVariable("n")[0]=20
speak("なすを20コ収穫しました!!")
elsif getFlag("j")
getVariable("j")[0]=20
speak("を20コ収穫しました!!")
end
speak(toString(t) + "秒しかたっていません。\nまだ成長中です")
end
case speakWithSelect(7,"豆","トマト","きゅうり","小麦","キャベツ","ナス","じゃがいも",
"何を植えますか?")
when 0
speak("豆を植えました。")
setBaseTime()
setVariable("m", true)
setVariable("s", true)
when 1
speak("トマトを植えました。")
setBaseTime()
setVariable("t", true)
setVariable("s", true)
when 2
speak("きゅうりを植えました。")
setBaseTime()
setVariable("k", true)
setVariable("s", true)
when 3
speak("小麦を植えました。")
setBaseTime()
setVariable("ko", true)
setVariable("s", true)
when 4
speak("キャベツを植えました。")
setBaseTime()
setVariable("ky", true)
setVariable("s", true)
when 5
speak("ナスを植えました。")
setBaseTime()
setVariable("n", true)
setVariable("s", true)
when 6
speak("じゃがいもを植えました。")
setBaseTime()
setVariable("j", true)
setVariable("s", true)
end
setVariable("m", createArray())
setVariable("t", createArray())
setVariable("k", createArray())
setVariable("ko", createArray())
setVariable("ky", createArray())
setVariable("n", createArray())
setVariable("j", createArray())]
先日質問したスプリクトを、配列などを使って変えてみたんですが、やっぱりダメでした・・・・なんか、最後の行にエラーがあるらしいんですが、エラーがどこでおきているのかわかりません。
全体的な流れで言うと、
作物を育てる→60秒経っていなければ収穫できず、60秒たっていれば収穫できて、選択した作物を20こ収穫できる。しかし、変数sebu(セーブした時にtrueになる)がtrueだと、枯れてしまうっていうものです。

コメントする

コメントするには、ログインする必要があります。

コメント一覧

Nyan mini rurun9(投稿日:2013/09/18 17:52, 履歴)
スクリプトを全部貼る場合、『それぞれの変数が、何を目的として何を入れているのか』をコメントで説明してくれないと…

それから、配列変数の扱い方に慣れてないのだと思いますが
setVariable("m", createArray())
で変数mを配列にはしたけど中身を入れないまま
setVariable("m", true)
とすると変数mにはtrueが入ってるだけで、配列ではなくなります


もしや配列はひとつ、二次元で作れば充分なのでは?
#開始スクリプト
setVariable("作物", createArray())

# 作物[n][m]
# n...0=いくつ持ってるか, 1=名前
# m...作物番号
getVariable("作物")[0]=createArray()
getVariable("作物")[1]=createArray()

getVariable("作物")[1][0]="豆"
getVariable("作物")[1][1]="トマト"
getVariable("作物")[1][2]="きゅうり"
getVariable("作物")[1][3]="小麦"
getVariable("作物")[1][4]="キャベツ"
getVariable("作物")[1][5]="なす"
getVariable("作物")[1][6]="じゃがいも"
getVariable("作物")[1][7]="まじたい"

# 畑...植えてある作物番号が入る、-1なら無し
setVariable("畑", -1)

#イベントスクリプト
if 0<=getVariable("畑") #何か植えてある
 if getFlag("sebu") #セーブしたから枯れた
  speak(getVariable("作物")[1][getVariable("畑")]+"が枯れてしまいました。\n")
 else #セーブはしていない
  t=floor( getTime()/1000 )
  if 20<=t #収穫した
   getVariable("作物")[0][getVariable("畑")]=getVariable("作物")[0][getVariable("畑")]+20
   speak(getVariable("作物")[1][getVariable("畑")]+"を20コ収穫しました。")
   setVariable("畑", -1)
  else #成長中
   tt=20-t
   speak(getVariable("作物")[1][getVariable("畑")]+"は順調に育っています。\nあと"+tt+"秒くらいで実るでしょう。")
  end
 end

elsif getVariable("畑")==-1 #何も植えてない
 a=speakWithSelectArray(getVariable("作物")[1], "何を植えますか?")
 setBaseTime()
 speak(getVariable("作物")[1][a]+"を植えますた\n20秒後が楽しみですね。")
 setVariable("畑", a)

else
 speak("変数「畑」の値がおかしい")
end
よし、動いたのを確認。
Edamame icon mini 茹で小豆(投稿日:2013/09/19 18:17, 履歴)
ありがとうございます!!!!
Nyan mini rurun9(投稿日:2013/09/19 20:06, 履歴)
「セーブすると枯れる事」に関しては今回詳細を知らないので入れてないですからね
少なくとも、コピペしただけでは一度枯れると(フラグsebuをどこかでtrueにしたら)この畑では二度と育てる事ができません
setVariable("畑", -1)
でリセットしてませんからねぇ

何秒で育つかは、実際にゲームをテストプレイしながら調整すると良いかと。
毎回必ず20個ずつ収穫できるけど、
r=rand(16)+5
とかでランダム個数収穫の方がゲームっぽいですよね

配列の良い所は、開始スクリプトに追加するだけで新しい作物を好きなだけ追加できちゃう点ですね
間違っても、まじたいなんか栽培しちゃダメですw
Edamame icon mini 茹で小豆(投稿日:2013/09/23 16:11, 履歴)
ありがとうございます!いろいろ考えて、収穫した野菜を市場に送り、お金を得られるようにしました!普通の野菜は1個100円で売れるようにし、まじたいは1個1円に(笑)
いろいろ改良して、たくさんの機能をつけました!
もちろん間違っても期待しちゃダメですよ(笑)
       256 mini 池ちゃん(翡翠ヶ池)(投稿日:2013/09/17 21:10, 履歴)
{{{code (内容)}}}

で、 []のあるスクリプトも問題なく表示することができますよ。
       256 mini 池ちゃん(翡翠ヶ池)(投稿日:2013/09/17 21:12, 履歴)
という訳で見やすく。
setVariable("m", createArray())
setVariable("t", createArray())
setVariable("k", createArray())
setVariable("ko", createArray())
setVariable("ky", createArray())
setVariable("n", createArray())
setVariable("j", createArray())

if getFlag("sebu")
speak("作物が枯れてしまいました。")
setVariable("s",false)
setVariable("sebu",false)
end
if getFlag("s")
t = getTime() / 1000
t = floor(t)
if t>59
speak("作物にみがなりました!!")
if getFlag("m")
getVariable("m")[0

=20
speak("豆を20コ収穫しました!!")
elsif getFlag("t")
getVariable("t")[0]=20
speak("トマトを20コ収穫しました!!")
elsif getFlag("k")
getVariable("k")[0]=20
speak("キャベツを20コ収穫しました!!")
elsif getFlag("ko")
getVariable("ko")[0]=20
speak("小麦を20コ収穫しました!!")
elsif getFlag("ky")
getVariable("ky")[0]=20
speak("きゅうりを20コ収穫しました!!")
elsif getFlag("n")
getVariable("n")[0]=20
speak("なすを20コ収穫しました!!")
elsif getFlag("j")
getVariable("j")[0]=20
speak("を20コ収穫しました!!")
end
speak(toString(t) + "秒しかたっていません。\nまだ成長中です")
end
case speakWithSelect(7,"豆","トマト","きゅうり","小麦","キャベツ","ナス","じゃがいも",
"何を植えますか?")
when 0
speak("豆を植えました。")
setBaseTime()
setVariable("m", true)
setVariable("s", true)
when 1
speak("トマトを植えました。")
setBaseTime()
setVariable("t", true)
setVariable("s", true)
when 2
speak("きゅうりを植えました。")
setBaseTime()
setVariable("k", true)
setVariable("s", true)
when 3
speak("小麦を植えました。")
setBaseTime()
setVariable("ko", true)
setVariable("s", true)
when 4
speak("キャベツを植えました。")
setBaseTime()
setVariable("ky", true)
setVariable("s", true)
when 5
speak("ナスを植えました。")
setBaseTime()
setVariable("n", true)
setVariable("s", true)
when 6
speak("じゃがいもを植えました。")
setBaseTime()
setVariable("j", true)
setVariable("s", true)
end
setVariable("m", createArray())
setVariable("t", createArray())
setVariable("k", createArray())
setVariable("ko", createArray())
setVariable("ky", createArray())
setVariable("n", createArray())
setVariable("j", createArray())] 
       256 mini 池ちゃん(翡翠ヶ池)(投稿日:2013/09/17 21:21, 履歴)
さらに見やすく。
setVariable("m", createArray())
setVariable("t", createArray())
setVariable("k", createArray())
setVariable("ko", createArray())
setVariable("ky", createArray())
setVariable("n", createArray())
setVariable("j", createArray())

if getFlag("sebu")
speak("作物が枯れてしまいました。")
setVariable("s",false)
setVariable("sebu",false)
end

if getFlag("s")
t = getTime() / 1000
t = floor(t)
   if t>59
   speak("作物にみがなりました!!")
     if getFlag("m")
     getVariable("m")[0]=20
     speak("豆を20コ収穫しました!!")
     elsif getFlag("t")
     getVariable("t")[0]=20
     speak("トマトを20コ収穫しました!!")
     elsif getFlag("k")
     getVariable("k")[0]=20
     speak("キャベツを20コ収穫しました!!")
     elsif getFlag("ko")
     getVariable("ko")[0]=20
     speak("小麦を20コ収穫しました!!")
     elsif getFlag("ky")
     getVariable("ky")[0]=20
     speak("きゅうりを20コ収穫しました!!")
     elsif getFlag("n")
     getVariable("n")[0]=20
     speak("なすを20コ収穫しました!!")
     elsif getFlag("j")
     getVariable("j")[0]=20
     speak("を20コ収穫しました!!")
   end
speak(toString(t) + "秒しかたっていません。\nまだ成長中です")
end

case speakWithSelect(7,"豆","トマト","きゅうり","小麦","キャベツ","ナス","じゃがいも",
"何を植えますか?")
when 0
 speak("豆を植えました。")
 setBaseTime()
 setVariable("m", true)
 setVariable("s", true)
when 1
 speak("トマトを植えました。")
 setBaseTime()
 setVariable("t", true)
 setVariable("s", true)
when 2
 speak("きゅうりを植えました。")
 setBaseTime()
 setVariable("k", true)
 setVariable("s", true)
when 3
 speak("小麦を植えました。")
 setBaseTime()
 setVariable("ko", true)
 setVariable("s", true)
when 4
 speak("キャベツを植えました。")
 setBaseTime()
 setVariable("ky", true)
 setVariable("s", true)
when 5
 speak("ナスを植えました。")
 setBaseTime()
 setVariable("n", true)
 setVariable("s", true)
when 6
 speak("じゃがいもを植えました。")
 setBaseTime()
 setVariable("j", true)
 setVariable("s", true)
end

setVariable("m", createArray())
setVariable("t", createArray())
setVariable("k", createArray())
setVariable("ko", createArray())
setVariable("ky", createArray())
setVariable("n", createArray())
setVariable("j", createArray())

これで大丈夫かな?
Edamame icon mini 茹で小豆(投稿日:2013/09/18 19:16, 履歴)
ありがとうございます!!!
       256 mini 池ちゃん(翡翠ヶ池)(投稿日:2013/09/18 21:55, 履歴)
ごめんなさい、僕のはバグがあると思われます。

rurunn9さんはベテランなのでそっちを信じたほうがいいと思います。
Edamame icon mini 茹で小豆(投稿日:2013/09/17 19:23, 履歴)
は、はみでてしまいました;